<?xml version="1.0" encoding="Windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="Windows-1251" media-type="text/xml"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="text()|@*">
        <xsl:value-of select="."/>
    </xsl:template>

    <xsl:template match="comment()"/>

    <xsl:template match="/">
        <root><xsl:apply-templates select="//uri"/></root>
    </xsl:template>

    <xsl:template match="scheme">
        <protocol><xsl:value-of select="text()"/></protocol>
    </xsl:template>

    <xsl:template match="host[text()!='']">
        <host><xsl:value-of select="text()"/></host>
    </xsl:template>

    <xsl:template match="port[text()!='']">
        <port><xsl:value-of select="text()"/></port>
    </xsl:template>

    <xsl:template match="user[text()!='']">
        <user><xsl:value-of select="text()"/></user>
    </xsl:template>

    <xsl:template match="pass[text()!='']">
        <pass><xsl:value-of select="text()"/></pass>
    </xsl:template>

    <xsl:template name="auth">
        <xsl:param name="data" select="null"/>

        <auth>
            <xsl:apply-templates select="$data//user[text()!=''][position()=last()]"/>
            <xsl:apply-templates select="$data//pass[text()!=''][position()=last()]"/>
        </auth>
    </xsl:template>

    <xsl:template name="access">
        <xsl:param name="data" select="null"/>

        <access>
            <xsl:if test="$data//user[text()!='']">
                <xsl:call-template name="auth">
                    <xsl:with-param name="data" select="$data"/>
                </xsl:call-template>
            </xsl:if>
            <server>
                <xsl:apply-templates select="$data//host[text()!=''][position()=last()]"/>
                <xsl:apply-templates select="$data//port[text()!=''][position()=last()]"/>
            </server>
        </access>
    </xsl:template>

    <xsl:template name="connect">
        <xsl:param name="data" select="null"/>

        <xsl:if test="$data//host">
            <connect>
                <xsl:apply-templates select="$data//scheme[text()!=''][position()=last()]"/>
                <xsl:call-template name="access">
                    <xsl:with-param name="data" select="$data"/>
                </xsl:call-template>
            </connect>
        </xsl:if>
    </xsl:template>

    <xsl:template match="uri">
        <uri>
            <xsl:call-template name="connect">
                <xsl:with-param name="data" select="."/>
            </xsl:call-template>
            <xsl:call-template name="target">
                <xsl:with-param name="data" select="."/>
            </xsl:call-template>
        </uri>
    </xsl:template>

    <xsl:template name="target">
        <xsl:param name="data" select="null"/>

       <xsl:variable name="script">
            <xsl:apply-templates select="$data//script"/>
        </xsl:variable>
        <xsl:call-template name="item">
            <xsl:with-param name="items" select="$script"/>
        </xsl:call-template>
   <!--      <xsl:apply-templates select="$script"/>
        <xsl:variable name="path">
            <xsl:apply-templates select="$data//dir"/>
        </xsl:variable>

        <xsl:if test="1 or $script/item/child::node() or $path/item/child::node()">
            <target>
                <xsl:if test="$path/item/child::node()">
                    <path><xsl:copy-of select="$path/item[child::node()][position()=last()]"/></path>
                </xsl:if>
                <xsl:if test="$script/item/child::node()">
                    <script><xsl:copy-of select="$script/item[child::node()][position()=last()]"/></script>
                </xsl:if>
            </target>
        </xsl:if>
-->    </xsl:template>

<!--    <xsl:template match="dir">
        <dir><xsl:value-of select="text()"/></dir>
    </xsl:template>
-->
    <xsl:template match="script">
        <item>
            <xsl:apply-templates select="text()[.!='']"/>
            <xsl:apply-templates select="@type[.!='']"/>
        </item>
    </xsl:template>

    <xsl:template match="script/text()">
        <name><xsl:value-of select="."/></name>
    </xsl:template>

    <xsl:template match="script/@type">
        <type><xsl:value-of select="."/></type>
    </xsl:template>

    <xsl:template name="item">
        <xsl:param name="items" select="null"/>
        <!--<xsl:copy-of select="$items"/>-->
    </xsl:template>

    <xsl:template match="item[1]">
        <xsl:copy-of select="."/>
    </xsl:template>

</xsl:stylesheet>